#pragma once

#include <iostream>
#include <functional>

typedef std::function<int(int,int,char)> Fun_t;

class Task
{
private:
    int _x;
    int _y;
    char _op;
    Fun_t _func;
public:
    Task() = default;

    Task(int x,int y,char op,Fun_t func)
    :_x(x),_y(y),_op(op),_func(func)
    { }

    int operator()()
    {
        return _func(_x,_y,_op);
    }
};